import pygame
from pygame.locals import *
from costants import *
import tetris
####################################################################################
####################################################################################
class Piece:
	def __init__(self,image,x=0,y=0,angle=0):
		self.x=x
		self.y=y
		self.angle=angle%360
		self.image=pygame.image.load(image).convert_alpha()
		self.image=pygame.transform.rotate(self.image,self.angle)
		self.height=self.image.get_height()
		self.width=self.image.get_width()
		
	def go_left(self,field):
		x=self.x-1
		if field.is_free(self.positions(x,self.y,self.angle)):
			self.x-=1
			
	def go_right(self,field):
		x=self.x+1
		if field.is_free(self.positions(x,self.y,self.angle)):
			self.x+=1
			
	def go_down(self,field):
		y=self.y+1
		if field.is_free(self.positions(self.x,y,self.angle)):
			self.y+=1
			
	def fill_mat(self,field):
		positions=self.positions(self.x,self.y,self.angle)
		field.fill_mat(positions,self.color)
		
	def rotate(self,field):
		angle=(self.angle+90)%360
		if field.is_free(self.positions(self.x,self.y,angle)):
			self.image=pygame.transform.rotate(self.image,90)
			self.angle=(self.angle+90)%360
			self.height=self.image.get_height()
			self.width=self.image.get_width()
			
	def can_go_down(self,field):
		y=self.y+1
		if field.is_free(self.positions(self.x,y,self.angle)): return True
		else: return False
		
	def blit(self,screen):
		screen.blit(self.image,(self.x*30+TETRIS_XOFFSET,self.y*30+TETRIS_YOFFSET))
####################################################################################
####################################################################################